#pragma once
namespace ne{
class InputSystem;
class PhysicsWorld;
class StateManager;
class LuaEngine;
class GameTime;
class Core : public Ogre::WindowEventListener {
public:
	Core(void);
	~Core(void);
	bool Init();
	void Run();
	void Shut();

	void windowResized(Ogre::RenderWindow* renderWindow);
	void windowClosed(Ogre::RenderWindow* renderWindow);

private:
	bool				m_run;
	LuaEngine*			m_luaEngine;
	StateManager*		m_stateManager;
	Ogre::Root*			m_root;
	Ogre::RenderWindow* m_renderWindow;
	PhysicsWorld*		m_physicsWorld;
	InputSystem*		m_inputSystem;
	GameTime*			m_gameTime;
};
}